package com.uzai.console.service.dy;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.uzai.console.dto.dy.dyorder.DyOrderIdDto;
import com.uzai.console.dto.dy.dyorder.DyOrderQuery;
import com.uzai.console.dto.dy.dyorder.*;
import com.uzai.console.dto.dy.dyorder.DyOrderDeleteUnbindDto;
import com.uzai.console.dto.dy.dyorder.DyOrderUnbindDtoQuery;
import com.uzai.console.dto.jd.jdorder.JdOrderIdDto;
import com.uzai.console.vo.dy.dyorder.DyOrderInfoVo;
import com.uzai.console.vo.dy.dyorder.DyOrderReportVo;

/***
 * @author liuqi
 * @date 2021年08月13日 11:33
 */
public interface DyOrderService {

    /***
     * 查询抖音订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderQuery
     * @return null
     */
    Page<DyOrderInfoVo> findDyOrderList(DyOrderQuery dyOrderQuery);

    /***
     * 查询抖音订单详情
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    DyOrderInfoVo findDyOrderInfo(DyOrderIdDto dyOrderIdDto);

    /***
     * 查询抖音订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderQuery
     * @return null
     */
    DyOrderReportVo findDyOrderReport(DyOrderQuery dyOrderQuery);

    /***
     * 抖音订单删除-假删除（修改是否删除状态）
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderDelDto
     * @return null
     */
    Boolean delDyOrder(DyOrderDelDto dyOrderDelDto);

    /***
     * 订单确认收货
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    Boolean confirmReceive(DyOrderIdDto dyOrderIdDto);

    /***
     * 订单手动维权
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    Boolean confirmRefund(DyOrderIdDto dyOrderIdDto);

    /***
     * 订单冻结
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    Boolean confirmFrozen(DyOrderIdDto dyOrderIdDto);

    /***
     * 订单解冻
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    Boolean confirmThaw(DyOrderIdDto dyOrderIdDto);

    /***
     * 订单解绑用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderUnbindUserDto
     * @return null
     */
    Boolean unbindUser(DyOrderUnbindUserDto dyOrderUnbindUserDto);

    /***
     * 订单绑定用户
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderBindUserDto
     * @return null
     */
    Boolean bindUser(DyOrderBindUserDto dyOrderBindUserDto);

    /**
     * 修改解冻时间
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderThawTimeDto
     * @return null
     */
    Boolean updateThawTime(DyOrderThawTimeDto dyOrderThawTimeDto);

    /***
     * 手动下载抖音订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderDownLoadDto
     * @return null
     */
    void downloadOrder(DyOrderDownLoadDto dyOrderDownLoadDto);

    /***
     * 刷新抖音订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    void refreshOrder(DyOrderIdDto dyOrderIdDto);

    /**
     * 查询所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderUnbindDtoQuery
     * @return null
     */
    Page<DyOrderInfoVo> findUnbindUserList(DyOrderUnbindDtoQuery dyOrderUnbindDtoQuery);

    /**
     * 查询所有未绑定用户订单统计信息
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderUnbindDtoQuery
     * @return null
     */
    DyOrderReportVo findUnbindUserReport(DyOrderUnbindDtoQuery dyOrderUnbindDtoQuery);

    /**
     * 删除所有未绑定用户订单列表
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderDeleteUnbindDto
     * @return null
     */
    Boolean deleteUnbindUserList(DyOrderDeleteUnbindDto dyOrderDeleteUnbindDto);

    /**
     * 更新7天前未收货订单
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param merId
     * @return null
     */
    void updateDyOrderUnReceivedList(Long merId);


    /**
     * 追回返利
     * @author liuqi
     * @date 2021/8/13 11:38
     * @param dyOrderIdDto
     * @return null
     */
    Boolean rebateRefound(DyOrderIdDto dyOrderIdDto);

}
